package eval.engine;

import java.util.List;
import java.util.Map;
import eval.engine.cplex.CplexMapIndexToVmId;
import eval.engine.cplex.InitialCplexCode.CplexDataHolder;
import eval.host.Host;
import eval.vm.VMIdentifier;
import eval.vm.VirtualMachine;

/**
 * This class represents an empty placement
 * 
 * @author Amit Peled   <amit.kapina@gmail.com>
 * @author Igal Kaufman <igal.kaufman@gmail.com>  
 * */
public class EmptyPlacement implements IPlacement {

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalRequestedCPU()
	 */
	@Override
	public int getTotalRequestedCPU() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalCloudCPULoad()
	 */
	@Override
	public int getTotalCloudCPULoad() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalCloudCpuDemand()
	 */
	@Override
	public double getTotalCloudCpuDemand() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalCloudMemDemand()
	 */
	@Override
	public int getTotalCloudMemDemand() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTurnedONHosts()
	 */
	@Override
	public List<Host> getTurnedONHosts() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTurnedOFFHosts()
	 */
	@Override
	public List<Host> getTurnedOFFHosts() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getMinCPULoadInHosts()
	 */
	@Override
	public double getMinCPULoadInHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getMinMEMLoadInHosts()
	 */
	@Override
	public double getMinMEMLoadInHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getAvgCPULoadInHosts()
	 */
	@Override
	public double getAvgCPULoadInHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getAvgMEMLoadInHosts()
	 */
	@Override
	public double getAvgMEMLoadInHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getMaxCPULoadInHosts()
	 */
	@Override
	public double getMaxCPULoadInHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getMaxMEMLoadInHosts()
	 */
	@Override
	public double getMaxMEMLoadInHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfOpenHosts()
	 */
	@Override
	public int getNumberOfOpenHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfClosedHosts()
	 */
	@Override
	public int getNumberOfClosedHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfCandidatesForClosingHosts()
	 */
	@Override
	public int getNumberOfCandidatesForClosingHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfTurnOffHosts()
	 */
	@Override
	public int getNumberOfTurnOffHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfTurnOnHosts()
	 */
	@Override
	public int getNumberOfTurnOnHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getVMSrequestedTobedeployed()
	 */
	@Override
	public List<VirtualMachine> getVMSrequestedTobedeployed() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getVMSWithSatisfiedDemand()
	 */
	@Override
	public List<VirtualMachine> getVMSWithSatisfiedDemand() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getVMSWithUNSatisfiedDemand()
	 */
	@Override
	public List<VirtualMachine> getVMSWithUNSatisfiedDemand() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getRejectedVMS()
	 */
	@Override
	public List<VirtualMachine> getRejectedVMS() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getRemovedList()
	 */
	@Override
	public List<VirtualMachine> getRemovedList() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getPlacedList()
	 */
	@Override
	public List<VirtualMachine> getPlacedList() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfVMsAtCloud()
	 */
	@Override
	public int getNumberOfVMsAtCloud() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfVMsWithSatisfiedDemand()
	 */
	@Override
	public int getNumberOfVMsWithSatisfiedDemand() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfVMsWithUnSatisfiedDemand()
	 */
	@Override
	public int getNumberOfVMsWithUnSatisfiedDemand() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalSatisfiedCPUDemand()
	 */
	@Override
	public int getTotalSatisfiedCPUDemand() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalUnSatisfiedCPUDemand()
	 */
	@Override
	public int getTotalUnSatisfiedCPUDemand() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfRemovedVMs()
	 */
	@Override
	public int getNumberOfRemovedVMs() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfPlacedVMs()
	 */
	@Override
	public int getNumberOfPlacedVMs() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#isEmptyPlacement()
	 */
	@Override
	public boolean isEmptyPlacement() {
		return false;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#isHostOpen(eval.host.Host)
	 */
	@Override
	public boolean isHostOpen(Host host) {
		return false;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#isHostClose(eval.host.Host)
	 */
	@Override
	public boolean isHostClose(Host host) {
		return false;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getHostFromLastPlacement(eval.host.Host)
	 */
	@Override
	public Host getHostFromLastPlacement(Host host) {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getCloudMap()
	 */
	@Override
	public Map<Integer, List<VMIdentifier>> getCloudMap() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getOpenHosts()
	 */
	@Override
	public List<Integer> getOpenHosts() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getNumberOfVmsReqToBeDeploy()
	 */
	@Override
	public int getNumberOfVmsReqToBeDeploy() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalCpuCapcityAtOpenHosts()
	 */
	@Override
	public int getTotalCpuCapcityAtOpenHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalMemCapcityAtOpenHosts()
	 */
	@Override
	public int getTotalMemCapcityAtOpenHosts() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalCpuCapcityAtCloud()
	 */
	@Override
	public int getTotalCpuCapcityAtCloud() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalCloudMemAtCloud()
	 */
	@Override
	public int getTotalCloudMemAtCloud() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getHostsStartUpCost()
	 */
	@Override
	public double getHostsStartUpCost() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getWorkingHostCost()
	 */
	@Override
	public double getWorkingHostCost() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getIncomeForSatisfyDemand()
	 */
	@Override
	public double getIncomeForSatisfyDemand() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalMemLoadAtCloud()
	 */
	@Override
	public int getTotalMemLoadAtCloud() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getBaseHostCost()
	 */
	@Override
	public double getBaseHostCost() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getSumOfMinReservtion()
	 */
	@Override
	public double getSumOfMinReservtion() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getVmRelocate()
	 */
	@Override
	public int getVmRelocate() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getCplexMapIndexToVmId()
	 */
	@Override
	public CplexMapIndexToVmId getCplexMapIndexToVmId() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getCplexData()
	 */
	@Override
	public CplexDataHolder getCplexData() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getTotalMemCapcityAtCloud()
	 */
	@Override
	public int getTotalMemCapcityAtCloud() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getFreeCpuAtHosts()
	 */
	@Override
	public double[] getFreeCpuAtHosts() {
		return null;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getGradientValue()
	 */
	@Override
	public int getGradientValue() {
		return 0;
	}

	/* (non-Javadoc)
	 * @see eval.engine.IPlacement#getvmMapping()
	 */
	@Override
	public Map<Host, List<VirtualMachine>> getvmMapping() {
		return null;
	}

}
